package nl.grol.yakshop.domain.model;

import org.joda.time.DateTime;

/**
 * Interface used as placeholder for living creatures
 * 
 * @author mgrol
 *
 */
public interface LivingI {

	/**
	 * Name of the object of interest
	 * 
	 * @return name
	 */
	String getName();

	/**
	 * Birth date of the object of interest
	 * 
	 * @return birth-date
	 */
	DateTime getBirthDate();

	/**
	 * Gender of the object of interest
	 * 
	 * @return gender
	 */
	Gender getGender();

	/**
	 * Age of the object of interest on a particular day
	 * 
	 * @return gender
	 */
	int getAgeInDaysOnDay(int daysSinceStartOfShop);

	double getAgeInYearsOnDay(int daysSinceStartOfShop);

	boolean isAliveOnDay(int daysSinceStartOfShop);
}
